package com.heu.blood.bloodtest.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 血液样本表（血库）
 * 
 * @author lrz
 * @email lrz@heu.com
 * @date 2023-08-28 17:09:07
 */
@Data
@TableName("blood_sample")
public class BloodSampleEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键id
	 */
	@TableId(value = "id", type = IdType.AUTO)
	private Long id;
	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	@TableField(value = "gmt_create", fill = FieldFill.INSERT) // 创建注解
	private Date gmtCreate;

	/**
	 * 修改时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	@TableField(value = "gmt_modified", fill = FieldFill.INSERT_UPDATE) // 更新注解
	private Date gmtModified;
	/**
	 * 血液样本id(BS开头)
	 */
	private String bloodSampleId;
	/**
	 * 血液id
	 */
	private String bloodId;
	/**
	 * ABO血型
	 */
	private String aboBloodType;
	/**
	 * RH血型
	 */
	private String rhBloodType;
	/**
	 * 样本类型
	 */
	private String sampleType;
	/**
	 * 血液样本存放位置
	 */
	private String place;
	/**
	 * 申请医生
	 */
	private String applicant;
	/**
	 * 申请时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss" )
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	private Date applyTime;
	/**
	 * 审核人
	 */
	private String reviewer;
	/**
	 * 审核时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	private Date reviewTime;
	/**
	 * 签收人
	 */
	private String recipient;
	/**
	 * 签收时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	private Date receivedTime;
	/**
	 * 血液样本状态
	 */
	private String sampleStatus;
	/**
	 * 当血液样本状态为退回或者遗弃是给予原因
	 */
	private String reason;
	/**
	 * 申请科室
	 */
	private String department;
	/**
	 * 送检目的
	 */
	private String purpose;
	/**
	 * 1代表展示，0代表不展示
	 */
	@TableField(value = "if_show", fill = FieldFill.INSERT) // 创建注解
	private Integer ifShow;
	/**
	 * 逻辑删除字段，1为已删除，0为未删除
	 */
	@TableLogic(value = "0", delval = "1")
	@TableField(value = "is_deleted", fill = FieldFill.INSERT) // 创建注解
	private Integer isDeleted;

}
